#include "mainwindow.h"
#include "myserver.h"
#include "ui_mainwindow.h"
#include "mythread.h"
#include "global.h"
#include <QLabel>
#include <QFont>
#include <QTcpServer>
#include <QTcpSocket>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    initUI();


    // 创建套接字
    tcpServer = new MyServer(this);
    connect(tcpServer,&MyServer::updateListItem,this,&MainWindow::onUpdateListItem);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::initUI()
{
    // 设置 顶层窗口 的大小和标题
    this->setFixedSize(250,250);
    this->setWindowTitle(tr("服务器"));

    // 为主窗口的状态栏设置一个永久提示信息
    showOnlineCount = new QLabel(tr("在线人数：0 人"));
    QFont font = showOnlineCount->font();
    font.setPointSize(6);   // 设置字体大小
    font.setBold(true);
    showOnlineCount->setFont(font);
    ui->statusBar->addPermanentWidget(showOnlineCount);

}


void MainWindow::on_btnStart_clicked()
{
    if(tcpServer->isListening() == false && tcpServer->listen(QHostAddress::AnyIPv4,port)){
        // 若监听成功，则让状态栏临时显示“正在监听”的提示信息
        ui->statusBar->setStatusTip(tr("*正在监听*"));
    }
}

void MainWindow::on_btnStop_clicked()
{
    if(tcpServer->isListening()){
        tcpServer->close();
        ui->statusBar->setStatusTip(tr("*已停止监听*"));
        listItem.clear();
    }
}

void MainWindow::onUpdateListItem()
{
    int count = listItem.count();
    showOnlineCount->setText(tr("在线人数：") + QString::number(count) + tr(" 人"));
}



